In a growing number of network-boot environments, the operating system (and a corresponding deployment engine) used for booting a target system is deployed from a server system via a network to each of the target systems. For example, in so-called ‘bare metal environments’, the hard disks (the usual medium on which a computer's operating system is installed) of the target systems may not comprise an operating system or any other bootable program code. Therefore, said bootable code needs to be transferred from a server via a network. This eases the maintenance of the target systems and also allows to flexibly deploy different operating systems on the target systems as needed.
The transferred operating system or deployment engine must comprise at least the drivers for accessing the hard disks of the target systems in order to write the operating system to said hard disks. In several network boot environments, initial network capabilities may be already provided by the target system for downloading a deployment engine. However, the capabilities of said initial network are rather limited. Therefore, while downloading a deployment engine via a network connection provided by said limited initial network capabilities, the target system may receive additional network drivers providing extended network capabilities. The target system may shut down the limited, initial network support used for downloading the deployment engine and pass control to the deployment engine which uses the additional network drivers for controlling the target computer's network card. Thus, at least some drivers need to be transmitted from the server to the respective target system for allowing the deployed operating system to control the hardware devices of said target system and to boot and operate the target system. Said hardware devices may comprise printers, scanners, graphic cards, and the like.
A problem connected with current network-boot approaches is that the hardware device composition of the target systems—and accordingly, the drivers that need to be provided to the individual target systems—may not be uniform. In order to guarantee that the deployed operating system or deployment engine is operable to control the hardware devices of each of a plurality of different target systems, current operating systems and deployment engines used for network boots in heterogeneous environments comprise a plurality of different drivers covering many more hardware devices than is actually contained in the target systems. Thus, although only a fraction of said drivers may actually be used by any of the target systems, a plurality of other drivers which are never used by the target systems (as they do not comprise the respective hardware devices) are also transferred as part of the operating system or as part of the deployment engine. This increases the amount of data deployed, increases network traffic, reduces the speed of deployment and increases the risk of delivering conflicting drivers to the target system. Conflicts may also be caused (e.g., by two drivers developed by different hardware vendors for the same disk controller).